<?php
/**
 * Map24CustomerLocationService class file
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */

/**
 * RequestHeader.CustomerKeyValuePair class
 */
if ( !class_exists('RequestHeaderCustomerKeyValuePair') )
{
require_once 'RequestHeader.CustomerKeyValuePair.php5';
}
/**
 * ResponseHeader class
 */
if ( !class_exists('ResponseHeader') )
{
require_once 'ResponseHeader.php5';
}
/**
 * Coordinate class
 */
if ( !class_exists('Coordinate') )
{
require_once 'Coordinate.php5';
}
/**
 * Property class
 */
if ( !class_exists('Property') )
{
require_once 'Property.php5';
}
/**
 * Map24CustomerLocation class
 */
if ( !class_exists('Map24CustomerLocation') )
{
require_once 'Map24CustomerLocation.php5';
}
/**
 * CLCircleFilter class
 */
if ( !class_exists('CLCircleFilter') )
{
require_once 'CLCircleFilter.php5';
}
/**
 * CoordinatesArray class
 */
if ( !class_exists('CoordinatesArray') )
{
require_once 'CoordinatesArray.php5';
}
/**
 * CLPolygonFilter class
 */
if ( !class_exists('CLPolygonFilter') )
{
require_once 'CLPolygonFilter.php5';
}
/**
 * CLPolylineCorridorFilter class
 */
if ( !class_exists('CLPolylineCorridorFilter') )
{
require_once 'CLPolylineCorridorFilter.php5';
}
/**
 * CLRouteCorridorFilter class
 */
if ( !class_exists('CLRouteCorridorFilter') )
{
require_once 'CLRouteCorridorFilter.php5';
}
/**
 * FindCustomerLocationsResponse class
 */
if ( !class_exists('FindCustomerLocationsResponse') )
{
require_once 'FindCustomerLocationsResponse.php5';
}
/**
 * RequestHeader class
 */
if ( !class_exists('RequestHeader') )
{
require_once 'RequestHeader.php5';
}
/**
 * FindCustomerLocationsRequest class
 */
if ( !class_exists('FindCustomerLocationsRequest') )
{
require_once 'FindCustomerLocationsRequest.php5';
}
/**
 * CustomerLocationLayer class
 */
if ( !class_exists('CustomerLocationLayer') )
{
require_once 'CustomerLocationLayer.php5';
}
/**
 * GetCustomerLocationLayersResponse class
 */
if ( !class_exists('GetCustomerLocationLayersResponse') )
{
require_once 'GetCustomerLocationLayersResponse.php5';
}
/**
 * GetCustomerLocationLayersRequest class
 */
if ( !class_exists('GetCustomerLocationLayersRequest') )
{
require_once 'GetCustomerLocationLayersRequest.php5';
}

/**
 * Map24CustomerLocationService class
 * 
 *  
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */
class Map24CustomerLocationService {

  private $client;

  private $wsdl = null;

  /**
   *
   * @param MapTP-System the request should be executed on $server
   * @param Map24Id $mid
   * @param Map24SessionId $sid
   */ 
  public function __construct($server=null, $mid=null, $sid=null, $interface='map24/webservices1.5') {
    if($server==null || $mid==null || $sid==null){
      echo "ERROR: Not enough or invalid arguments! Unable to initialise SoapClient.";
    }
    else {
      $this->wsdl = "http://".$server."/".$interface."?wsdl=Map24CustomerLocationService";
      $this->client = new SoapClient($this->wsdl, array('location' => "http://".$server."/".$interface."?soap=Map24CustomerLocationService&mid=".$mid."&sid=".$sid, 'trace' => 0, 'exceptions' => 1));
    }
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param FindCustomerLocationsRequest $FindCustomerLocationsRequest
   * @return FindCustomerLocationsResponse
   */
  public function findCustomerLocations(RequestHeader $RequestHeader, FindCustomerLocationsRequest $FindCustomerLocationsRequest) {
    return $this->client->findCustomerLocations($RequestHeader, $FindCustomerLocationsRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param GetCustomerLocationLayersRequest $GetCustomerLocationLayersRequest
   * @return GetCustomerLocationLayersResponse
   */
  public function getCustomerLocationLayers(RequestHeader $RequestHeader, GetCustomerLocationLayersRequest $GetCustomerLocationLayersRequest) {
    return $this->client->getCustomerLocationLayers($RequestHeader, $GetCustomerLocationLayersRequest);
  }

}

?>
